package com.inspur.cloud.entity.dataspace.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
@ApiModel(value = "HbaseVO列表查询返回对象")
public class HbaseVO {
    @ApiModelProperty(value = "本资源ID，编辑或删除、分配的时候需要")
    private Integer resourceId;
    @ApiModelProperty(value = "父资源ID，创建的时候需要，查询的时候也会返回")
    private Integer parentId;
    @ApiModelProperty(value = "查询/创建哪一类资源分类，1命名空间2表名3列族名", example = "1")
    private Integer cate = 1;
    @ApiModelProperty(value = "命名空间")
    private String spaceName;
    /**
     * 表名
     */
    @ApiModelProperty(value = "表名")
    private String tableName;
    /**
     * 表下的列族数量
     */
    @ApiModelProperty(value = "列族数")
    private Integer columnFamilyNum;
    /**
     * 列族
     */
    @ApiModelProperty(value = "列族名，一般不超过3个")
    private String columnFamilyName;
    /**
     * 列
     */
    @ApiModelProperty(value = "列名")
    private String columnName;
    @ApiModelProperty(value = "租户列表，返回时使用")
    private List<String> tenantList;
    @ApiModelProperty(value = "用户列表，返回时使用")
    private List<String> userList;
    @ApiModelProperty(value = "租户ID列表,传递参数时使用此数据接口，不要直接传用户名")
    private List<Integer> tenantIdList;
    @ApiModelProperty(value = "用户ID列表,传递参数时使用此数据接口，不要直接传用户名")
    private List<Integer> userIdList;

    @ApiModelProperty(value = "资源类型,1公共2私有3共享", required = true)
    private Integer type;
    @ApiModelProperty(value = "权限字段，以|隔开，比如 read|write，需要是小写")
    private String powerList;
    /**
     * 资源拥有者id，因管理员用户id为1，故该字段为1时为公共资源，不为1为拥有者id的用户所拥有，为私有资源
     */
    private Integer owner;
    /**
     * 创建者
     **/
    private String creator;
    /**
     * 0无效 1有效，状态待补充
     */
    private Integer status;
    @ApiModelProperty(value = "层级数")
    private Integer level;
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updDate;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insDate;
}
